home *** CD-ROM | disk | FTP | other *** search
/ MacFormat 1995 March / macformat-022.iso / Shareware City / Developers / src / out-of-phase-102-c / OutOfPhase 1.02 Source / OutOfPhase Folder / AlgoWaveTableWindow.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-11-23  |  4.0 KB  |  108 lines  |  [TEXT/KAHL]

  1. /* AlgoWaveTableWindow.h */
  2.  
  3. #ifndef Included_AlgoWaveTableWindow_h
  4. #define Included_AlgoWaveTableWindow_h
  5.  
  6. /* AlgoWaveTableWindow module depends on */
  7. /* MiscInfo.h */
  8. /* Audit */
  9. /* Debug */
  10. /* Definitions */
  11. /* SampleConsts */
  12. /* Screen */
  13. /* EventLoop */
  14. /* Menus */
  15. /* MainWindowStuff */
  16. /* AlgoWaveTableObject */
  17. /* AlgoWaveTableList */
  18. /* TextEdit */
  19. /* IconButton */
  20. /* WindowDispatcher */
  21. /* Memory */
  22. /* Alert */
  23. /* Numbers */
  24. /* GrowIcon */
  25. /* DataMunging */
  26. /* Main */
  27. /* EditImages */
  28. /* FindDialog */
  29. /* WaveTableSizeDialog */
  30. /* GlobalWindowMenuList */
  31.  
  32. #include "SampleConsts.h"
  33. #include "Screen.h"
  34. #include "EventLoop.h"
  35. #include "Menus.h"
  36.  
  37. struct AlgoWaveTableWindowRec;
  38. typedef struct AlgoWaveTableWindowRec AlgoWaveTableWindowRec;
  39.  
  40. /* forward declarations */
  41. struct MainWindowRec;
  42. struct AlgoWaveTableObjectRec;
  43. struct AlgoWaveTableListRec;
  44.  
  45. /* create a new algorithmic wave table editing window */
  46. AlgoWaveTableWindowRec*    NewAlgoWaveTableWindow(struct MainWindowRec* MainWindow,
  47.                                             struct AlgoWaveTableObjectRec* AlgoWaveTableObject,
  48.                                             struct AlgoWaveTableListRec* AlgoWaveTableList,
  49.                                             OrdType WinX, OrdType WinY, OrdType WinWidth, OrdType WinHeight);
  50.  
  51. /* write data back to the object and dispose of the window */
  52. void                                DisposeAlgoWaveTableWindow(AlgoWaveTableWindowRec* Window);
  53.  
  54. /* find out if the wave table has been modified since the last file save */
  55. MyBoolean                        HasAlgoWaveTableWindowBeenModified(AlgoWaveTableWindowRec* Window);
  56.  
  57. /* highlight a line in the formula edit box */
  58. void                                AlgoWaveTableWindowHiliteLine(AlgoWaveTableWindowRec* Window,
  59.                                             long LineNumber);
  60.  
  61. /* bring the window to the top and give it the focus */
  62. void                                AlgoWaveTableWindowBringToTop(AlgoWaveTableWindowRec* Window);
  63.  
  64. /* event handling routines */
  65. void                                AlgoWaveTableWindowDoIdle(AlgoWaveTableWindowRec* Window,
  66.                                             MyBoolean CheckCursorFlag, OrdType XLoc, OrdType YLoc,
  67.                                             ModifierFlags Modifiers);
  68. void                                AlgoWaveTableWindowBecomeActive(AlgoWaveTableWindowRec* Window);
  69. void                                AlgoWaveTableWindowBecomeInactive(AlgoWaveTableWindowRec* Window);
  70. void                                AlgoWaveTableWindowJustResized(AlgoWaveTableWindowRec* Window);
  71. void                                AlgoWaveTableWindowDoMouseDown(OrdType XLoc, OrdType YLoc,
  72.                                             ModifierFlags Modifiers, AlgoWaveTableWindowRec* Window);
  73. void                                AlgoWaveTableWindowDoKeyDown(unsigned char KeyCode,
  74.                                             ModifierFlags Modifiers,AlgoWaveTableWindowRec* Window);
  75. void                                AlgoWaveTableWindowClose(AlgoWaveTableWindowRec* Window);
  76. void                                AlgoWaveTableWindowUpdator(AlgoWaveTableWindowRec* Window);
  77. void                                AlgoWaveTableWindowMenuSetup(AlgoWaveTableWindowRec* Window);
  78. void                                AlgoWaveTableWindowDoMenuCommand(AlgoWaveTableWindowRec* Window,
  79.                                             MenuItemType* MenuItem);
  80.  
  81. /* get a copy of the algorithmic wave table's name */
  82. char*                                AlgoWaveTableWindowGetNameCopy(AlgoWaveTableWindowRec* Window);
  83.  
  84. /* get a copy of the algorithmic wave table's formula */
  85. char*                                AlgoWaveTableWindowGetFormulaCopy(AlgoWaveTableWindowRec* Window);
  86.  
  87. /* get the number of bits used for this algorithmic wave table */
  88. NumBitsType                    AlgoWaveTableWindowGetNumBits(AlgoWaveTableWindowRec* Window);
  89.  
  90. /* get the number of periods in the table */
  91. long                                AlgoWaveTableWindowGetNumTables(AlgoWaveTableWindowRec* Window);
  92.  
  93. /* get the number of frames in each period */
  94. long                                AlgoWaveTableWindowGetNumFrames(AlgoWaveTableWindowRec* Window);
  95.  
  96. /* the name of the file has changed, so update the title bar of the window.  the */
  97. /* NewFilename is a non-null-terminated string which must be disposed by the caller */
  98. void                                AlgoWaveTableWindowGlobalNameChange(AlgoWaveTableWindowRec* Window,
  99.                                             char* NewFilename);
  100.  
  101. /* reset the title bar name of the window even if the filename hasn't changed */
  102. void                                AlgoWaveTableWindowResetTitlebar(AlgoWaveTableWindowRec* Window);
  103.  
  104. /* write back all modified data to the object */
  105. MyBoolean                        AlgoWaveTableWindowWritebackModifiedData(AlgoWaveTableWindowRec* Window);
  106.  
  107. #endif
  108.